1. Field of the Invention
This invention relates to configuring a computer for installation of a peripheral device. In particular, device drivers are selected for computer peripherals, based upon an identification code associated with the peripheral.
2. Description of the Related Art
Most personal computer (PC) systems facilitate the installation of newly connected hardware devices by first detecting that the new device has been connected to a bus of the computer. For example, the Microsoft® Windows® “Install New Hardware Wizard,” may be activated by a user to assist in detecting and identifying the newly connected hardware. The Hardware Wizard recognizes newly connected hardware, and guides the user through the installation of the correct device drivers. A device driver is a software program that matches standardized commands from the computer's operating system to specific capabilities of the newly connected device. To aid in this process, Microsoft® Windows®, for example, uses a popular software routine called Plug and Play.
Plug and Play is a computer implemented routine that provides a host PC with an ability to detect the connection of new hardware, and in some cases, to automatically install the required device driver(s). Specifically, Plug and Play, implemented by the PC's operating system, identifies new hardware devices connected to the PC and presents the user with installation options. Most new PCs are Plug and Play compatible.
In order for Plug and Play to function, the new hardware device must also be Plug and Play compatible. A major component of this compatibility is the Plug and Play device's identification (ID) stored in a memory location of the newly connected hardware device. This ID is provided to the PC during a Plug and Play handshake session. Plug and Play operates by requesting that a newly connected hardware device identify itself to the PC using the ID. In response, the device transmits its device ID to the PC which is then processed and identified by the PC's operating system. The signaling standard that governs the physical and electrical exchanges between the PC and the newly connected hardware device is the IEEE Std. 1284-1994 Standard Signaling Method for a Bi-directional Parallel Peripheral Interface for Personal Computers, published Mar. 30, 1994.
The IEEE 1284 standard essentially upgrades the standard parallel port (SPP) interface that was designed for the IBM PC of the early 1980s. In particular, IEEE 1284 defines the physical and electrical interface between the PC and the peripheral device. The original SPP, referred to as the centronics style interface, provided an input/output (I/O) interface between a PC and a peripheral device at speeds on the order of 150 KBps. During this time frame, the fastest peripheral device was the dot matrix printer which could be easily accommodated by the SPP. The centronics style SPP, however, was unable to accommodate the much faster peripheral devices of modern personal computing, such as laser printers, which transfer color graphic files of sizes on the order of megabytes. An additional short-coming of the earlier parallel ports was the limitation of being able to transfer information in one direction only. Therefore, in the mid-1990s, the IEEE Standards Board approved the IEEE 1284 signaling method.
IEEE 1284 parallel ports run at 100 to 200 times faster than the original centronics-style parallel ports and not only facilitate faster communication, but also facilitate bi-directional communication, allowing the printer to not only receive data, but also talk back to the PC. Today, most printer manufacturers design their newer generation printers to support the IEEE 1284 signaling standard. The device drivers that accompany these machines take full advantage of the high speed data rates and the bi-directional capability provided by IEEE 1284.
As shown in FIG. 1, IEEE 1284 defines five modes 15–19 of data transfer. The original centronics SPP included 17 signal lines and 8 ground lines. The signal lines included control lines for providing interface control, status lines for providing status indications for things such a paper empty signals, and data lines used to transfer data between the PC and the peripheral. IEEE 1284 uses these same data lines but redefines the electrical characteristics and signaling protocol required for communication. The first three data transfer modes of IEEE 1284, the compatibility mode 15, nibble mode 16, and byte mode 17, are provided mainly to support older uni-directional devices that continue to operate at the slower speeds. The Enhanced Parallel Port (EPP) mode 18 and Extended Capability Port (ECP) 19, facilitate operation of more modern, faster peripheral devices. EPP mode primarily supports CD ROMs, hard drives, and other non-printer peripherals and ECP mode is mainly directed towards printers and scanners. Microsoft® Windows® 95, for example, supports each of the five IEEE 1284 data transfer modes in its Plug and Play routine.
IEEE 1284 also defines the requirements of the device ID used, for example, in the Plug and Play implementation. As addressed above, the device ID is requested from the new hardware device by the PC in order for the PC to be able to properly identify and install the device drivers necessary for the new hardware to function correctly. In accordance with IEEE 1284, the device ID includes specific case sensitive key values. These values includes fields such as MANUFACTURER, and MODEL which are abbreviated by IEEE 1284 as MFG, and MDL respectively. The MFG identifies the device manufacturer, and MDL provides a specific model number or nomenclature. Other Key fields exist, such as CLASS (CLS) and DESCRIPTION (DES), but are not as widely used. All ID key values must consist of American Standard Code for Information Interchange (ASCII) values of 32-127 (20 h–7 Fh) and are stored in the newly connected peripheral's configuration memory, such as ROM, or EEPROM, and stored in the form of an INF file. INF files typically contain all the data and information necessary to configure and operate the respective device.
With Plug and Play implemented, a user is then able to implement routines such as the Microsoft® Install New Hardware Wizard, and navigate through the procedures required for the user to complete installation of the device. The problem is, however, that Plug and Play is not adequate to handle installation of all devices in all scenarios. One of the scenarios where Plug and Play is least helpful is installing shared printers in a networked PC environment. Specifically, Plug and Play will not identify, for example, a new printer added to a print server operating in a Novell computer network environment.
Additionally, Plug and Play cannot presently apriorily determine whether a particular device installation will be problematic and thus cannot inform the user of any special measures necessary to resolve these problems in order to properly install the new hardware device. Therefore, a different technique is needed to resolve these types of problems and thus provide a user with the ability to successfully complete installation of a printer in a networked PC environment.